/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package componentes;

import com.thoughtworks.xstream.XStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import principal.Main;

/**
 *
 * @author Wagner Tavares
 */
public class Configuracao implements Runnable{
    String llogin;
    int portaSquid,portaAuth,timeOut;
    
    public Configuracao(){
        llogin="substitua isso aqui por iguape, por exemplo";
    }
    public Configuracao(String llogin, int portaSquid, int portaAuth, int timeOut){
        this.llogin = llogin;
        this.portaSquid = portaSquid;
        this.portaAuth = portaAuth;
        this.timeOut = timeOut;
    }
    public void run(){
        FileInputStream fis = null;
        File xml = null;
        try {
            File temp = new File (Linux.pathConf);
            if(!temp.exists())
                temp.mkdir();
            xml = new File(Linux.pathConf+File.separator+"configuracao.xml");
            if(!xml.exists())
                this.geraXML();
            fis = new FileInputStream(xml);
            XStream xStream = new XStream();
            Configuracao conf = (Configuracao) xStream.fromXML(fis);
            llogin = conf.getLlogin();
            portaSquid = conf.getPortaSquid();
            portaAuth = conf.getPortaAuth();
            timeOut = 60000*conf.getTimeOut();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Main.class.getName()).logp(Level.WARNING, "Configuracao","run()","O arquivo configuracao.xml não foi encontrado! Acabei de gerar um em branco. Edite-o.");
        } finally {
            try {
                fis.close();
            } catch (IOException ex) {
                Logger.getLogger(Main.class.getName()).logp(Level.SEVERE, "Configuracao","run()","Erro ao ler o arquivo "+xml.getName(), ex);
            }
        }
    }
    
    public String getLlogin(){
        return llogin;
    }
    public int getPortaSquid(){
        return portaSquid;
    }
    public int getPortaAuth(){
        return portaAuth;
    }
    public int getTimeOut(){
        return timeOut;
    }
    public void setLlogin(String val){
        llogin = val;
    }
    public void setPortaSquid(int val){
        portaSquid = val;
    }
    public void setPortaAuth(int val){
        portaAuth = val;
    }
    public void setTimeOut(int val){
        timeOut = val;
    }
    public void geraXML(){
        FileOutputStream fos = null;
        File xml = null;
        try {
            xml = new File(Linux.pathConf+File.separator+"configuracao.xml");
            fos = new FileOutputStream(xml);
            XStream xstream = new XStream();
            xstream.toXML(this, fos);
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Main.class.getName()).logp(Level.WARNING, "Configuracao","geraXML()","O arquivo configuracao.xml não foi encontrado! Acabei de gerar um em branco. Edite-o.");
        } finally {
            try {
                fos.close();
            } catch (IOException ex) {
                Logger.getLogger(Main.class.getName()).logp(Level.SEVERE, "Configuracao","geraXML()","Erro ao ler o arquivo "+xml.getName(), ex);

            }
        }
    }
}
